perm filename SYS[AP,DBL] blob sn#113468 filedate 1974-07-31 generic text, type T, neo UTF8
00100	Rough sketch of of System Design for AP
00200	
00300	This will be similar to BEINGS (PUP5 system) so I will stress the changes.
00400	Even low-level knowledge (e.g., how to do an assignment) should be made
00500	into beings.   More and better records shall be kept; this will include
00600	more types of assert:lists,  more faithful filling-in of new beings' parts,
00700	statistics about inter-being calling (which might lead to splitting a being
00800	into new beings, or to joining several beings into one.)
00900	
01000	The third major change would be the user-interface being.  At present, this
01100	is handled by MESSAGE (to print to the user) and by the sequence READ--TRANSLATE
01200	(to input and understand.)  These should yield to a sophistocated interface
01300	network of knowledge, which receives from its caller-being a description
01400	of what is wanted, and in which format, say X in format F. The interface
01500	then analyzes X, and the user model, and decides how the easiest way to get
01600	X would be.  The module asks for X'  in the chosen format F', then converts
01700	these to the original X and F.  Notice that this could be trivial
01800	(READ and PRINT), simple (as at present), or very complex (able to change
01900	between very different input specifications). This could conceivably be
02000	handled separately from the rest of the system.
02100	
02200	There should be a "dial" indicating how much the ystem should induce.  At
02300	one extreme, the system would ask the user to verify even the most trivial
02400	guesses and inferences; at the other, the system would probably write the whole
02500	target program after one brief user command.  After one version is witten,
02600	in either case, the user should be able to try it, report his complaints,
02700	and the system should be able to correct the program and continue on.
02800	
02900	The system should be self-adding, i.e., new code is allowed to use the whole
03000	body of system beings and functions.  All the code generated should itself be
03100	in beings.  Thus the code will understand itself.
03200	
03300	The idea here in all this is that the combinatorial explosion which
03400	crippled Predicate Calculus -- that of retrieving just the relevant
03500	facts --  can be solved by organizing the knowledge in a pool, with
03600	each piece being responsible for (i) recognizing when it is relevant,
03700	and (ii) indicating new relevant information not explicitly but
03800	indirectly via nondeterministic pattern-matching retrievals and 
03900	assertions.  Notice that this puts ALL the control structure in the hands
04000	of the beings.  If, that is, HANDS  are being-parts.